2.1.5. Element* Architectural Case Study

In this section, we will work through a simple exercise file that is meant as an introduction to working with Element tools. We will explore some patterning and facade treatments in the field of Architecture which will incorporate Half Edge data structures along with basic Element components without the use of per vertex features.

IMAGE

2.1.5.1 Example 1

Example files that accompany this section: Download


IMAGE

IMAGE

00. Create a meshplane in Rhino with XFaces = 2 & YFaces = 2 and Start a new definition, type Ctrl-N (in Grasshopper)
01. Params/Geometry/Mesh - Drag and drop a Mesh container onto the canvas IMAGE
01b. Reference a mesh in Rhino by right-clicking the Mesh component and selecting "Set one Mesh".
We are going to use a simple mesh plane to walk through the definition, feel free to swap out the mesh with your own mesh
02. Element*/Utility/Mesh Combine and Clean - Drag and drop a Element* Mesh Combine and Clean component on the canvas IMAGE
03. Element*/Data/Vertex Neighbors - Drag and drop the Element* Vertex Neighbors component onto the canvas IMAGE
04. Params/Input/Number Slider - Drag and drop a Number Slider component onto the canvas and set the following values:
    Lower Limit: 0.0000
    Upper Limit: 1.0000
05. Curve/Analysis/Evaluate Curve - Drag and drop a Evaluate Curve container onto the canvas IMAGE
05b. Connect the Neighbouring Edges (NE) output of the Element* Vertex Neighbors component to the Curve (C) input of the Evaluate Curve component
05c. Connect the Number Slider to the Float (t) input of the Evaluate Curve component and set the value to 0.5000
05d. Right click the Curve (C) input of the Evaluate Curve component and enable Reparameterize

IMAGE

06. Element*/Analyse/Mesh Closest Point - Drag and drop a Element* Mesh Closest Point container onto the canvas IMAGE
06a. Connect the Mesh output (M) of the Element*/Utility/Mesh Combine and Clean component to the Mesh (M) input of the Element* Mesh Closest Point component
06b. Connect the Points output (P) of the Curve/Analysis/Evaluate Curve component to the Point (P) input of the Element* Mesh Closest Point component
07. Params/Input/Number Slider - Drag and drop a Number Slider component onto the canvas and set the following values:
    Rounding: Float
    Lower Limit:0
    Upper Limit: 10.000
08. Vector/Vector/Amplitude - Drag and drop a Amplitude component onto the canvas IMAGE
09. Transform/Euclidean/Move - Drag and drop a Move component onto the canvas IMAGE
10. Params/Geometry/Point - Drag and drop a Point container onto the canvas IMAGE
10b. Connect the Face Centers output (FC) of the Element* Vertex Neighbors component to the Point component
11. Sets/List/Weave - Drag and drop a Weave component onto the canvas IMAGE

IMAGE

IMAGE

12. Curve/Primitive/Polyline - Drag and drop a Polyline component onto the canvas IMAGE
12b. Connect the Weave output (W) of the Weave component to the Vertices (V) input of the Polyline component
12c. Right click the Closed (C) input of the Polyline component, click "Set Boolean" and set the value to True
This has created a closed polyline.
13. Params/Input/Number Slider - Drage and drop a Number Silder component onto the canvas. We will keep the default range of 0 to 1 for this slider
14. Element*/Transform/Mesh Frame - Drag and drop a Element* Mesh Frame component onto the canvas. IMAGE
14b. Connect the Polyline (Pl) output of the Polyline component to the Geometry (G) input of the Mesh Frame component
Note that the **Mesh Frame** component can take either meshes or a list of closed polyline curves as input
14c. Connect the Number Slider to the Factor (F) input of the Mesh Frame component

IMAGE

15. Element*/Utility/Mesh Combine and Clean - Drag and drop a Element* Mesh Combine and Clean component on the canvas IMAGE
15b. Right click the Combine Type (CT) input of the Element* Mesh Combine and Clean component, click "Set Integer" and set the value to 1.
The Combine Type input has two options (0, which combines and cleans the meshes) and (1, which joins the meshes in the list without merging vertices). In this example we want to join the meshes
16. Right click the Mesh (M) input of the Element* Mesh Combine and Clean component, click "Flatten".
This will flatten the list so we can join the mesh list together.
17. Element*/Utility/Mesh Status - Drag and drop a Element* Mesh Status component on the canvas IMAGE
17b Connect the Info (I) and Status (S) outputs of Element* Mesh Status to a Params/Input/Panel component
The mesh **Info** output contains mesh validity information, closed or open type and mesh component counts (vertices, faces, normals). The mesh **Status** informs the user if the mesh is in "Good" condition as well as data regarding non manifold edges, unused vertex count, degenerate face count, naked edge count and disjoined mesh count.
18. Params/Input/Colour Swatch - Drag and drop a Colour Swatch component on the canvas
19. Display/Preview/Custom Preview - Drag and drop a Custom Preview component on the canvas

IMAGE

IMAGE

2.1.5.2 Example 2

Example files that accompany this section: Download


IMAGE

00. Create a meshplane in Rhino with XFaces = 2 & YFaces = 2 and Start a new definition, type Ctrl-N (in Grasshopper)
01. Params/Geometry/Mesh - Drag and drop a Mesh container onto the canvas IMAGE
01b. Reference a mesh in Rhino by right-clicking the Mesh component and selecting "Set one Mesh".
We are going to use a simple mesh plane to walk through the definition, feel free to swap out the mesh with your own mesh
02. Element*/Utility/Mesh Combine and Clean - Drag and drop a Element* Mesh Combine and Clean component on the canvas IMAGE
03. Element*/Data/Vertex Neighbors - Drag and drop the Element* Vertex Neighbors component onto the canvas IMAGE
04. Vector/Vector/Vector2Pt - Drag and drop a Vector2Pt component onto the canvas IMAGE
05. Params/Input/Number Slider - Drag and drop a Number Slider component onto the canvas and set the following values:
    Rounding: Float
    Lower Limit:0
    Upper Limit: 2.000
06. Maths/Operator/Multiplication - Drag and drop a Multiplication component onto the canvas IMAGE
07. Maths/Operators/Addition - Drag and drop two Addition components onto the canvas IMAGE
08. Curve/Primitive/Polyline - Drag and drop a Polyline component onto the canvas IMAGE
09. Curve/Primitive/Polyline - Drag and drop a Polyline component onto the canvas IMAGE

IMAGE

10. Params/Input/Number Slider - Drag and drop a Number Slider component onto the canvas and set the following values:
    Rounding: Float
    Lower Limit:0
    Upper Limit: 1.000
11,12. Element*/Transform/Mesh Frame - Drag and drop a Element* Mesh Frame component onto the canvas. IMAGE
11b,12b. Connect the Polyline (Pl) output of the Polyline component to the Geometry (G) input of the Mesh Frame component
Note that the **Mesh Frame** component can take either meshes or a list of closed polyline curves as input
11c,12c. Connect the Number Slider (10) to the Factor (F) input of the Mesh Frame component
13,14. Element*/Subdivide/Catmull Clark Subdivision - Drag and drop a Catmull Clark Subdivision component onto the canvas
We will set the Iterations input (I) value to 1 as well as the **Edge Condition** input (E) to a value of 1. The edge condition input options are 0 = Fixed, 1 == Smooth, 2 == Corners Fixed.
IMAGE
15. Sets/Tree/Merge - Drag and drop two Merge components onto the canvas IMAGE
15b. Right click the Result (R) output of the Merge component and click "Flatten".
16. Element*/Utility/Mesh Combine and Clean - Drag and drop a Element* Mesh Combine and Clean component on the canvas IMAGE

Components have detailed remarks and warnings to inform the user of the current or potential issues that might come about from interaction with other components. In some instances you might use the Element Combine and Clean component to join and combine identical vertices on a mesh which could lead to non manifold edges if that mesh is thickend later on. The Element Combine and Clean component will inform you of this issue that will return the list back to you. You have the option of setting the Combine Type to a value of 1 which will combine the meshes in the list but not combine identical vertices.

IMAGE

IMAGE

17. Element*/Utility/Mesh Edges - Drag and drop a Element* Mesh Edges component on the canvas IMAGE
17b Connect the Mesh (M) output of the Element* Mesh Combine and Clean component (16) to the Mesh input (M) of the Element* Mesh Edges component
18. Params/Input/Number Slider - Drag and drop a Number Slider component onto the canvas and set the following values:
    Rounding: Float
    Lower Limit:0
    Upper Limit: 1.000
19. Element*/Transform/Mesh Frame - Drag and drop a Element* Mesh Frame component onto the canvas. IMAGE
19b Connect the Face Polylines (FP) output of the Element* Mesh Edges component to the Mesh input (M) of the Element* Mesh Frame component
19c Connect the Number Slider to the Float (f) input of the Element* Mesh Frame component
20. Element*/Utility/Mesh Combine and Clean - Drag and drop a Element* Mesh Combine and Clean component on the canvas IMAGE
21. Right click the Mesh (M) input of the Element* Mesh Combine and Clean component and click "Flatten".
22. Right click the Combine Type (CT) input of the Element* Mesh Combine and Clean component, click "Set Integer" and set the value to 1.
The Combine Type input has two options (0, which combines and cleans the meshes) and (1, which joins the meshes in the list without merging vertices). In this example we want to join the meshes
23. Params/Input/Colour Swatch - Drag and drop a Colour Swatch component on the canvas
24. Display/Preview/Custom Preview - Drag and drop a Custom Preview component on the canvas
25. Element*/Utility/Mesh Status - Drag and drop a Element* Mesh Status component on the canvas IMAGE
25b Connect the Info (I) and Status (S) outputs of Element* Mesh Status to a Params/Input/Panel component
The mesh **Info** output contains mesh validity information, closed or open type and mesh component counts (vertices, faces, normals). The mesh **Status** informs the user if the mesh is in "Good" condition as well as data regarding non manifold edges, unused vertex count, degenerate face count, naked edge count and disjoined mesh count.

IMAGE

IMAGE